import { ref } from 'vue';
import { defineStore } from 'pinia';
import config from '@/config/index';

/**
 * 权限状态
 */
export default defineStore('auth', () => {

    console.log('[INFO] useAuthStore 初始化')
    const authTokenId = config.auth_token_id;
    // 检测登陆状态
    function isLogin() {
        return window.sessionStorage.getItem(authTokenId) ? true : false;
    }
    // 清理登陆状态数据
    function logout() {
        window.sessionStorage.removeItem(authTokenId);
        window.sessionStorage.removeItem('menutabs');
        window.sessionStorage.removeItem('routes');
    }
    // 返回 token 数据
    function getToken() {
        return window.sessionStorage.getItem(authTokenId) ?? '';
    }
    // 保存 token 数据
    function setToken(data) {
        console.log('保存token',authTokenId,data);
        window.sessionStorage.setItem(authTokenId, data);
    }

    // 权限代码数据
    const codes = ref([]);
    
    // 检测权限状态
    function hasCode(code) {
        // console.log('[INFO] useAuthStore 检查权限状态', code, codes.value.includes(code));
        return codes.value.includes(code);
    }
    // 保存权限代码数据
    function setCodes(data) {
        console.error('SET_CODES====',data)
        codes.value = data;
    }

    return {
        isLogin,
        logout,
        setToken,
        getToken,
        hasCode,
        setCodes
    }
}) 